home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
HPAVC
/
HPAVC CD-ROM.iso
/
PWAEEM13.ZIP
/
EEOM.PPE
(
.txt
)
< prev
next >
Wrap
PCBoard Programming Language Executable
|
1995-04-09
|
13KB
|
717 lines
;------------------------------------------------------------------------------
; .ss.
; `²²'
; .,sS$Ss,,s$ .,sS$$$Ss. .,sS$Ss,,s$ .ss. .sSs.
; .d$$²^°²$$$$'.d$P²°^^²$P'.d$$²^°²$$$$'.$$$' .$$$²Sb,.
; $$$' .$$$' $$$²Sçsµ²' .$$$' .$$$'.$$$' .$$$' `$$b.
; $$$b,,d$$$' ,$$$b,....,s$$$$b,,d$$$'.$$$;.,$$$' ;$$$
; `²S$$S²²S$$S²°²S$$$$S²°°²S$$$$$$',$$S²°²S$S'.sS$$$P²'
; .sS²°$$$²²°"' d²°'
; .$$² .$$'
; $$$.,d$$'
; `²S$$S²'
;------------------------------------------------------------------------------
; P.P.L.X. 2.OO (C)1996 - Lone Runner / AEGiS CoRP'96
;------------------------------------------------------------------------------
; PPE 3.O1 (Encryption type I) - Analysis ON - Postprocessing ON
;------------------------------------------------------------------------------
Boolean BOOLEAN001
Boolean BOOLEAN002
Boolean BOOLEAN003
Boolean BOOLEAN004
DWord DWORD001
DWord DWORD002
String STRING001
String TSTRING002(9)
String TSTRING003(9)
String STRING004
String STRING005
String STRING006
String STRING007
String STRING008
String STRING009
String STRING010
String STRING011
String STRING012
String STRING013
String STRING014
String STRING015
String STRING016
String STRING017
String STRING018
String STRING019
Time TIME001
Time TIME002
Byte TBYTE001(9)
Byte BYTE002
Byte BYTE003
Byte BYTE004
Byte BYTE005
Byte BYTE006
Byte BYTE007
Byte BYTE009
Byte BYTE010
Byte BYTE011
Byte BYTE015
Int INT001
Declare Function FUNCTION001(Byte BYTE014, String STRING020) DWord
Declare Procedure PROC001()
Declare Procedure PROC002()
Declare Procedure PROC003()
Declare Procedure PROC004()
Declare Procedure PROC005()
Declare Procedure PROC006()
Declare Procedure PROC007()
Declare Procedure PROC008(Byte BYTE012, Byte BYTE013)
Declare Procedure PROC009(Byte BYTE008, Int INT002)
Declare Procedure PROC010(Int INT003)
;------------------------------------------------------------------------------
PROC001()
PROC002()
PROC003()
PROC005()
End
;------------------------------------------------------------------------------
Procedure PROC004()
Byte BYTE005
Print STRING004
For BYTE005 = 1 To 8
TBYTE001(BYTE005) = GetX()
Print TSTRING002(BYTE005) + Space(BYTE002)
Next
EndProc
;------------------------------------------------------------------------------
Procedure PROC005()
Byte BYTE006
Byte BYTE007
Int INT001
Boolean BOOLEAN003
Time TIME001
Time TIME002
BYTE007 = 1
BYTE006 = 1
If (BYTE003) Then
TIME001 = Time()
KbdChkOff
Endif
If (FUNCTION001(16, STRING017) <> 64288) End
PROC004()
PROC008(BYTE006, BYTE007)
BOOLEAN003 = 0
:LABEL001
If (BOOLEAN003) Goto LABEL002
If (BYTE003) Then
TIME002 = Time()
If (TIME002 - TIME001 > 60 * BYTE003) Then
Newline
DispText 55, 32768 + 2048 + 256 + 128
Bye
Endif
Endif
Delay BYTE004
INT001 = Asc(Inkey())
If ((((((INT001 == 82) || (INT001 == 68)) || (INT001 == 54)) || (INT001 == 56)) || (INT001 == 32)) || (INT001 == 62)) Then
BYTE007 = BYTE006
Inc BYTE006
If (BYTE006 > 8) BYTE006 = 1
PROC008(BYTE006, BYTE007)
ElseIf ((((((INT001 == 76) || (INT001 == 85)) || (INT001 == 52)) || (INT001 == 50)) || (INT001 == 9)) || (INT001 == 60)) Then
BYTE007 = BYTE006
Dec BYTE006
If (BYTE006 < 1) BYTE006 = 8
PROC008(BYTE006, BYTE007)
Else
Select Case (INT001)
Case 99, 67
BYTE007 = BYTE006
BYTE006 = 1
PROC008(BYTE006, BYTE007)
If (BOOLEAN002) BOOLEAN003 = 1
Case 100, 68
BYTE007 = BYTE006
BYTE006 = 2
PROC008(BYTE006, BYTE007)
If (BOOLEAN002) BOOLEAN003 = 1
Case 106, 74
BYTE007 = BYTE006
BYTE006 = 3
PROC008(BYTE006, BYTE007)
If (BOOLEAN002) BOOLEAN003 = 1
Case 107, 75
BYTE007 = BYTE006
BYTE006 = 4
PROC008(BYTE006, BYTE007)
If (BOOLEAN002) BOOLEAN003 = 1
Case 110, 78
BYTE007 = BYTE006
BYTE006 = 5
PROC008(BYTE006, BYTE007)
If (BOOLEAN002) BOOLEAN003 = 1
Case 114, 82
BYTE007 = BYTE006
BYTE006 = 6
PROC008(BYTE006, BYTE007)
If (BOOLEAN002) BOOLEAN003 = 1
Case 115, 83
BYTE007 = BYTE006
BYTE006 = 7
PROC008(BYTE006, BYTE007)
If (BOOLEAN002) BOOLEAN003 = 1
Case 43, 93
BYTE007 = BYTE006
If (BOOLEAN002) Then
BYTE006 = 9
BOOLEAN003 = 1
Else
BYTE006 = 8
Endif
PROC008(BYTE006, BYTE007)
Case 45, 91
BYTE007 = BYTE006
If (BOOLEAN002) Then
BYTE006 = 10
PROC008(BYTE006, BYTE007)
BOOLEAN003 = 1
Else
BYTE006 = 8
Endif
PROC008(BYTE006, BYTE007)
Case 13
BOOLEAN003 = 1
Case 63
PROC006()
BYTE006 = 0
BOOLEAN003 = 1
Case 33
PROC007()
PROC004()
PROC008(BYTE006, BYTE007)
Case 0
BYTE007 = BYTE006
BYTE006 = 8
PROC008(BYTE006, BYTE007)
If (BOOLEAN002) BOOLEAN003 = 1
Endif
End Select
Goto LABEL001
:LABEL002
PROC009(BYTE006, INT001)
EndProc
;------------------------------------------------------------------------------
Procedure PROC007()
Print Chr(13)
ClrEol
Print Chr(13)
Print Space((79 - Len(StripAtx(STRING017))) / 2) + STRING017
Delay 35
Print Chr(13)
ClrEol
Print Chr(13)
EndProc
;------------------------------------------------------------------------------
Procedure PROC009(Byte BYTE008, Int INT002)
Byte BYTE009
Print Chr(13)
ClrEol
BYTE009 = 3
Select Case (BYTE008)
Case 0
Print STRING005
Print STRING016
KbdStuff Chr(13)
Case 1
Print STRING005
Print STRING007
KbdStuff Chr(13)
Case 2
Print STRING005
Print STRING008
KbdStuff "D"
Case 3
Print STRING005
Print STRING009
KbdStuff "J"
Case 4
Print STRING005
Print STRING010
KbdStuff "K"
Case 5
Print STRING005
Print STRING011
KbdStuff "N"
Case 6
Print STRING005
Print STRING012
KbdStuff "RE"
Case 7
Print STRING005
Print STRING013
KbdStuff "SKIP"
Case 8
PROC010(INT002)
BYTE009 = 0
Case 9
Print STRING005
Print STRING014
KbdStuff "+"
Case 10
Print STRING005
Print STRING015
KbdStuff "-"
End Select
Delay BYTE009
EndProc
;------------------------------------------------------------------------------
Procedure PROC010(Int INT003)
String STRING018
String STRING019
Boolean BOOLEAN004
Byte BYTE010
Byte BYTE011
Print STRING006
BYTE011 = GetX() - 1
If (InStr(Mask_AlNum() + Mask_Ascii(), Chr(INT003)) && (INT003 <> 13)) Then
Print Chr(INT003)
STRING018 = Chr(INT003)
BYTE010 = 1
Else
STRING018 = ""
BYTE010 = 0
Endif
BOOLEAN004 = 0
:LABEL003
If (BOOLEAN004) Goto LABEL004
Delay BYTE004
STRING019 = Inkey()
Select Case (Asc(STRING019))
Case 13
If (STRING018 == "") Then
STRING018 = Chr(13)
Print STRING007
Endif
BOOLEAN004 = 1
Case 27, 21
Print Chr(13)
Forward BYTE011
ClrEol
Print Chr(13)
Forward BYTE011
BYTE010 = 0
STRING018 = ""
Case 8
If (BYTE010 > 0) Then
Print STRING019 + " " + STRING019
Dec BYTE010
STRING018 = Left(STRING018, Len(STRING018) - 1)
Endif
Case InStr(Mask_AlNum(), STRING019)
Case 79 - Len(StripAtx(STRING006))
Print STRING019
Inc BYTE010
STRING018 = STRING018 + STRING019
End Select
Goto LABEL003
:LABEL004
STRING018 = Upper(STRING018)
Select Case (STRING018)
Case "H"
Print Chr(8) + ReadLine(STRING001, 14)
STRING018 = "HE"
Case "HE"
Print Chr(8) + Chr(8) + ReadLine(STRING001, 14)
Case ""
Print STRING007
STRING018 = Chr(13)
Case "+"
Print Chr(8) + STRING014
Case "-"
Print Chr(8) + STRING015
Case "/"
Print Chr(8) + STRING016
Case "ALIAS"
Print Chr(8) + Chr(8) + Chr(8) + Chr(8) + Chr(8) + ReadLine(STRING001, 15)
Case "C"
Print Chr(8) + ReadLine(STRING001, 16)
Case "COPY"
Print Chr(8) + Chr(8) + Chr(8) + Chr(8) + ReadLine(STRING001, 17)
Case "D"
Print Chr(8) + STRING008
Case "DE"
Print Chr(8) + Chr(8) + ReadLine(STRING001, 18)
Case "E"
Print Chr(8) + ReadLine(STRING001, 19)
Case "EDIT"
Print Chr(8) + Chr(8) + Chr(8) + Chr(8) + ReadLine(STRING001, 20)
Case "F"
Print Chr(8) + ReadLine(STRING001, 21)
Case "FF"
Print Chr(8) + Chr(8) + ReadLine(STRING001, 22)
Case "FLAG"
Print Chr(8) + Chr(8) + Chr(8) + Chr(8) + ReadLine(STRING001, 23)
Case "FT"
Print Chr(8) + Chr(8) + ReadLine(STRING001, 24)
Case "G"
Print Chr(8) + ReadLine(STRING001, 25)
Case "J"
Print Chr(8) + STRING009
Case "JUMP"
Print Chr(8) + Chr(8) + Chr(8) + Chr(8) + ReadLine(STRING001, 26)
Case "K"
Print Chr(8) + STRING010
Case "L"
Print Chr(8) + ReadLine(STRING001, 27)
Case "LONG"
Print Chr(8) + Chr(8) + Chr(8) + Chr(8) + ReadLine(STRING001, 28)
Case "M"
Print Chr(8) + ReadLine(STRING001, 29)
Case "MOVE"
Print Chr(8) + Chr(8) + Chr(8) + Chr(8) + ReadLine(STRING001, 30)
Case "N"
Print Chr(8) + STRING011
Case "NEXT"
Print Chr(8) + Chr(8) + Chr(8) + Chr(8) + ReadLine(STRING001, 31)
Case "NS"
Print Chr(8) + Chr(8) + ReadLine(STRING001, 32)
Case "P"
Print Chr(8) + ReadLine(STRING001, 33)
Case "PREV"
Print Chr(8) + Chr(8) + Chr(8) + Chr(8) + ReadLine(STRING001, 34)
Case "RE"
Print Chr(8) + Chr(8) + STRING012
Case "RM"
Print Chr(8) + Chr(8) + ReadLine(STRING001, 35)
Case "RM+"
Print Chr(8) + Chr(8) + ReadLine(STRING001, 36)
Case "RM-"
Print Chr(8) + Chr(8) + ReadLine(STRING001, 37)
Case "RO"
Print Chr(8) + Chr(8) + ReadLine(STRING001, 38)
Case "RR"
Print Chr(8) + Chr(8) + ReadLine(STRING001, 39)
Case "S"
Print Chr(8) + ReadLine(STRING001, 40)
Case "SE"
Print Chr(8) + Chr(8) + ReadLine(STRING001, 41)
Case "SET"
Print Chr(8) + Chr(8) + Chr(8) + ReadLine(STRING001, 42)
Case "SHORT"
Print Chr(8) + Chr(8) + Chr(8) + Chr(8) + Chr(8) + ReadLine(STRING001, 43)
Case "SKIP"
Print Chr(8) + Chr(8) + Chr(8) + Chr(8) + STRING013
Case "T+"
Print Chr(8) + Chr(8) + ReadLine(STRING001, 44)
Case "T-"
Print Chr(8) + Chr(8) + ReadLine(STRING001, 45)
Case "TS"
Print Chr(8) + Chr(8) + ReadLine(STRING001, 46)
Case "U"
Print Chr(8) + ReadLine(STRING001, 47)
Case "USER"
Print Chr(8) + Chr(8) + Chr(8) + Chr(8) + ReadLine(STRING001, 48)
Case "V"
Print Chr(8) + ReadLine(STRING001, 49)
Case "Y"
Print Chr(8) + ReadLine(STRING001, 50)
Case "YA"
Print Chr(8) + Chr(8) + ReadLine(STRING001, 51)
Case "Z"
Print Chr(8) + ReadLine(STRING001, 52)
End Select
Delay 3
KbdStuff STRING018
EndProc
;------------------------------------------------------------------------------
Procedure PROC006()
If (Exist(PPEPath() + "EEOM.HLP")) Then
DispFile PPEPath() + "EEOM.HLP", 0
KbdStuff "/"
Endif
EndProc
;------------------------------------------------------------------------------
Procedure PROC003()
If (Exist(PPEPath() + "EEOM.PCB")) Then
DispFile PPEPath() + "EEOM.PCB", 0
Endif
EndProc
;------------------------------------------------------------------------------
Procedure PROC008(Byte BYTE012, Byte BYTE013)
Print Chr(13)
Forward TBYTE001(BYTE013) - 1
Print TSTRING002(BYTE013)
Print Chr(13)
Forward TBYTE001(BYTE012) - 1
Print TSTRING003(BYTE012)
EndProc
;------------------------------------------------------------------------------
Procedure PROC002()
If (BOOLEAN001) Then
GetUser
If ((GetY() >= U_PageLen) && ((U_Cls == 0) || ((U_Cls == 1) && (U_Scroll == 1)))) Then
Wait
Endif
Endif
EndProc
;------------------------------------------------------------------------------
Function FUNCTION001(Byte BYTE014, String STRING020) DWord
DWord DWORD002
Byte BYTE015
String STRING021
DWORD002 = 0
BYTE015 = 0
While (((1 < 0) && (BYTE015 >= Len(STRING020) - 1)) || ((1 >= 0) && (BYTE015 <= Len(STRING020) - 1))) Do
DWORD002 = DWORD002 + BYTE014 * Asc(Mid(STRING020, BYTE015, 1))
BYTE015 = BYTE015 + 1
EndWhile
FUNCTION001 = DWORD002
EndFunc
;------------------------------------------------------------------------------
Procedure PROC001()
String STRING021
String STRING022
String STRING023
Byte BYTE016
STRING017 = "@X0FEnhanced End of Message v1.3 by Drew [PWA]@X07"
STRING021 = PPEPath() + "EEOM.CFG"
STRING022 = PPEPath() + "LB.CFG"
STRING001 = PPEPath() + "STRINGS.CFG"
If (FUNCTION001(3, STRING017) <> 12054) End
If (Exist(STRING022)) Then
FOpen 1, STRING022, 0, 2
FDefIn 1
FDGet STRING023
BYTE002 = S2I(STRING023, 10)
For BYTE016 = 1 To 8
FDGet TSTRING002(BYTE016)
FDGet TSTRING003(BYTE016)
Next
FClose 1
Else
BYTE002 = 0
TSTRING002(1) = "@X08 Cont @X07"
TSTRING003(1) = "@X4F CONT @X07"
TSTRING002(2) = "@X08 Dload @X07"
TSTRING003(2) = "@X4F DLOAD @X07"
TSTRING002(3) = "@X08 Jump @X07"
TSTRING003(3) = "@X4F JUMP @X07"
TSTRING002(4) = "@X08 Kill @X07"
TSTRING003(4) = "@X4F KILL @X07"
TSTRING002(5) = "@X08 Nomore @X07"
TSTRING003(5) = "@X4F NOMORE @X07"
TSTRING002(6) = "@X08 Reply @X07"
TSTRING003(6) = "@X4F REPLY @X07"
TSTRING002(7) = "@X08 Skip @X07"
TSTRING003(7) = "@X4F SKIP @X07"
TSTRING002(8) = "@X08 Other @X07"
TSTRING003(8) = "@X4F OTHER @X07"
Endif
If (Exist(STRING021)) Then
If (Lower(ReadLine(STRING021, 1)) == "yes") Then
BOOLEAN002 = 1
Else
BOOLEAN002 = 0
Endif
If (Lower(ReadLine(STRING021, 2)) == "yes") Then
BOOLEAN001 = 1
Else
BOOLEAN001 = 0
Endif
BYTE004 = S2I(ReadLine(STRING021, 3), 10)
FClose -1
Else
BOOLEAN002 = 1
BOOLEAN001 = 1
BYTE004 = 1
Endif
If (Exist(STRING001)) Then
FOpen 1, STRING001, 0, 2
FDefIn 1
FDGet STRING004
FDGet STRING005
FDGet STRING006
FDGet STRING007
FDGet STRING008
FDGet STRING009
FDGet STRING010
FDGet STRING011
FDGet STRING012
FDGet STRING013
FDGet STRING014
FDGet STRING015
FDGet STRING016
FClose 1
Else
STRING004 = "@X0FMsg #: @X08[@X0F@CURMSGNUM@@X08] [@X0F+@X08/@X0F-@X08/@X0F?@X08] @X07"
STRING005 = "@X0FExecuting Msg Cmd: @X07"
STRING006 = "@X0FOther Msg Cmd: @X07"
STRING007 = "@X04Continue message read...@X07"
STRING008 = "@X04Download message...@X07"
STRING009 = "@X04Jump conference@X07"
STRING010 = "@X04Killing message #@CURMSGNUM@@X07"
STRING011 = "@X04No more (quit)@X07"
STRING012 = "@X04Reply to message #@CURMSGNUM@@X07"
STRING013 = "@X04Skip conference...@X07"
STRING014 = "@X04Continuing forward...@X07"
STRING015 = "@X04Continuing backward...@X07"
STRING016 = "@X04Re-reading message...@X07"
Endif
BYTE003 = ReadLine(PCBDat(), 89)
EndProc
;------------------------------------------------------------------------------
;
; Usage report (before postprocessing)
;
; ■ Statements used :
;
; 3 End
; 4 ClrEol
; 1 Wait
; 193 Goto
; 117 Let
; 89 Print
; 115 If
; 2 DispFile
; 2 FOpen
; 3 FClose
; 1 GetUser
; 5 Delay
; 2 Inc
; 2 Dec
; 1 Newline
; 1 DispText
; 12 KbdStuff
; 1 Bye
; 1 KbdChkOff
; 4 Forward
; 2 FDefIn
; 16 FDGet
; 10 EndProc
; 1 EndFunc
;
;
; ■ Functions used :
;
; 1 -
; 2 *
; 1 /
; 126 +
; 9 -
; 104 ==
; 3 <>
; 5 <
; 3 <=
; 4 >
; 7 >=
; 103 !
; 9 &&
; 25 ||
; 5 Len(
; 2 Lower()
; 1 Upper()
; 1 Mid()
; 1 Left()
; 2 Space()
; 121 Chr()
; 6 Asc()
; 3 InStr()
; 2 Time()
; 2 StripAtx()
; 2 Inkey()
; 2 Mask_AlNum()
; 2 Mask_Ascii()
; 1 PCBDat()
; 7 PPEPath()
; 44 ReadLine()
; 5 Exist()
; 2 S2I()
; 2 GetX()
; 1 GetY()
;
;------------------------------------------------------------------------------
;
; Analysis flags : d
;
; d - Access PCBOARD.DAT ■ 2
; Program gets the full pathname to PCBOARD.DAT, this may be usefull
; for many PPE so they can find various informations on the system
; (system paths, max number of lines in messages, ...) but it may also
; be a way to gather vital informations.
; ■ Search for : PCBDAT()
;
;------------------------------------------------------------------------------
;
; Postprocessing report
;
; 2 For/Next
; 1 While/EndWhile
; 19 If/Then or If/Then/Else
; 4 Select Case
;
;------------------------------------------------------------------------------
; AEGiS Corp - Break the routines, code against the machines!
;------------------------------------------------------------------------------